1. Field of the Invention
The present invention relates to an apparatus and a method of coordinating an operation action of a robot software component, and more particularly, to an apparatus and a method of designating, in an application operated in a robot software component framework, the execution order among components constituting the corresponding application and arranging and execute an operation so as to perform a key operation of a corresponding component in accordance with the designated order.
2. Description of the Related Art
Presently, the operation of a robot software component employs a scheme in which one thread is allocated to one component, such as open robot control software (OROCOS) or a robot technology component (RTC). Of course, in addition to the scheme, a scheme in which one application has one process, such as openJAUS, a scheme in which one thread processes the operations of a plurality of components having the same cycle, such as an open platform for robotic services (OPROS) component frame work, and the like are employed.
As such, under an environment where many components are operated, the components may be dependent on each other.
For example, as shown in FIG. 1, it is assumed that a pedestrian detection component 14 that detects a pedestrian through data transferred from an image sensor component 10 and a laser sensor component 12 is configured.
The pedestrian detection component 14 should use both results from two sensor components 10 and 12 in accordance with its characteristic. If only one data exists, when the pedestrian detection component 14 is configured in a scheme in which the corresponding data is removed, the pedestrian detection component 14 needs to be executed after receiving the data from the image sensor component 10 and the laser sensor component 12 every execution cycle. When the pedestrian detection component 14 is executed earlier than one between the sensor components 10 and 12, a value in the corresponding execution cycle is removed. Meanwhile, when waiting until all data are inputted, the pedestrian detection component 14 does not process the components in the corresponding execution cycle but processes the components in the next execution cycle.
As described above, the pedestrian detection component 14 is dependent on the action of the image sensor component 10 and the laser sensor component 12.
In the prior art, when the components are dependent on each other, a dependent component among components processed in different threads continuously checks a predetermined variable indicating a state of a preceding component. According to the checking result, when the dependent component reaches a predetermined state, the dependent component performs its own operation. Meanwhile, when components processed by different processes are dependent on each other, the dependent components are configured to react to a predetermined event message through network messaging or interprocess communication (IPC).
However, in all of the methods, the dependent component should acquire the state of the preceding component or process a particular event message of the preceding component.
For the dependency, a component developer should include the corresponding mechanism when preparing the component. The preceding component should have an extra variable so as to allow the component depending on itself to a processing state of the preceding component itself. The preceding component should be prepared to notify its own action state by establishing a predetermined port that enables accessing the corresponding variable or through messaging.
The method cannot be applied when the component developer does not know whether or not the component prepared by the component developer will be used in dependent application afterwards. Even though the component is prepared under the dependent environment, the component cannot be used under an environment other than a predetermined environment.
For example, when the pedestrian detection component is configured as shown in FIG. 1 by using the prior art, the image sensor component 10 used by the pedestrian detection component 14 should previously know that a component which is dependent on the corresponding component exists during a development stage. Further, the image sensor component 10 should be configured to have an additional port that allows another component to know the execution state of the image sensor component 10, which is other than a port that transfers an image to another component or to notify the completion of the operation through messaging.